uniform mat4 u_matMVP;
uniform mat4 u_matW;

attribute vec2 a_uv;
attribute vec3 a_normL;
attribute vec3 a_tangentL;
attribute vec3 a_bitangentL;
attribute vec3 a_posL;


varying vec3 v_normW;
varying vec3 v_posW;
varying vec2 v_uv;
varying vec3 v_tangentW;
varying vec3 v_bitangentW;

void main()
{
	vec4 pos = vec4(a_posL, 1.0);
	gl_Position = u_matMVP * pos;
	v_uv = a_uv;
	v_posW.xyz = (u_matW * pos).xyz;
	v_normW.xyz = (u_matW * vec4(a_normL, 0.0)).xyz;
	v_tangentW.xyz = (u_matW * vec4(a_tangentL, 0.0)).xyz;
	v_bitangentW.xyz = (u_matW * vec4(a_bitangentL, 0.0)).xyz;
}